package eitwitter.normalization;

import java.util.HashMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * Supprime les URLs et pseudonymes et decoupe le texte passe en parametre 
 * suivant les symboles de ponctuation et ne conserve ni la ponctuation 
 * ni les URLs ni les pseudos.
 * @author AH & PJ
 */
public class SymbolsLinksTokenizer implements Normalizer{
	
	/** Expression reguliere pour rechercher et supprimer les URLs */
	final private String urls = "(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]";
	
	final private String nicknames = "@[a-zA-Z_]+";
	
	@Override
	public HashMap<String, Integer> normalize(String text) {
		HashMap<String, Integer> tokens = new HashMap<String, Integer>();
		
		// Suppression des URLs dans le texte en entree
		Pattern p = Pattern.compile(urls);
		Matcher m = p.matcher(text);
		text = m.replaceAll("");
		
		// Suppression des pseudonymes des utilisateurs
		p = Pattern.compile(nicknames);
		m = p.matcher(text);
		text = m.replaceAll("");
		
		//decoupage suivant les symboles
		tokens = new SymbolsTokenizer().normalize(text);
		
		// Recuperation de la polarite du tweet		
		return tokens;
	}
}
